<?php 
namespace XFCore\traits\api;
trait OtherTrait{
    public function query($get , $post){
        $data = array_merge($get , $post);
        $requiredFields = ['pid', 'qr_id','time','sign'];
        if($this->checkRequiredParams($requiredFields , $data)){
            $this->echomsg('json','参数不全');
        }
        $userrow = $this->db->userrow($data['pid'] , 'pid' , '`pid`,`key`');
        if(empty($userrow)){
            $this->echomsg('json','用户不存在');
        }
        $this->Examine_Sign($data,$userrow ,true);
        
        $qr_row = $this->db->qrlistrow($data['qr_id'] , 'id',"`id`,`type`,`status`,`hook_type`,`xf_stat`,`cookie`");
        if(empty($qr_row)){
            $this->echomsg('json','二维码数据不存在');
        }
        $arr = [
            'qr_id'=>$qr_row['id'],
            'type'=>$qr_row['type'],
            'status'=>$qr_row['status'] == 1 ?"在线":"不在线",
            'hook_type'=>$this->hook_type($qr_row)
        ];
        exitjson(200,'success',['data'=>$arr]);
    }
    public function order($get , $post){
        $data = array_merge($get , $post);
        $requiredFields = ['pid', 'out_trade_no','time','sign'];
        if($this->checkRequiredParams($requiredFields , $data)){
            $this->echomsg('json','参数不全');
        }
        $userrow = $this->db->userrow($data['pid'] , 'pid' , '`pid`,`key`');
        if(empty($userrow)){
            $this->echomsg('json','用户不存在');
        }
        $this->Examine_Sign($data,$userrow ,true);
        $srow = $this->db->orderrow($data['out_trade_no'] , 'out_trade_no');
        $status = [
            '1'=>'已支付',
            '2'=>'订单超时',
            '0'=>'未支付'
        ];
        $arr = [
            'trade_no'=>$srow['trade_no'],
            'out_trade_no'=>$srow['out_trade_no'],
            'type'=>$srow['type'],
            'name'=>$srow['name'],
            'money'=>$srow['money'],
            'price'=>$srow['price'],
            'qr_id'=>$srow['qr_id'],
            'addtime'=>$srow['addtime'],
            'endtime'=>$srow['endtime'],
            'status'=>$status[$srow['status']],
        ];
        exitjson(200,'success',['data'=>$arr]);
    }
    public function ResetPassword($get , $data){
        $requiredFields = ['newPassword', 'token'];
        if($this->checkRequiredParams($requiredFields , $data)){
            $this->echomsg('json','参数不全');
        }
        $token = aes256auth($data['token'] , SYS_KEY , 'DECODE');
        if(empty($token)){
            exitjson(-1,'token错误!');
        }
        $arr = json_decode($token , true);
        if ($arr['time'] < time() - 1800){
            exitjson(-1,'链接已失效');
        } 
        
        $userrow = $this->db->userrow($arr['pid'] , 'pid','pid');
        if(empty($userrow)){
            exitjson(-1,'用户不存在！');
        }
        $salt = $this->salt;
        $params = [
            'pass'=>md5($salt . md5($salt.$data['newPassword'].$salt.md5($salt.$data['newPassword'].$salt).$data['newPassword'].$salt) . $salt),
            'salt'=>$salt
        ];
        if($this->db->update('user',$params , ['pid'=>$userrow['pid']])){
            exitjson(200,'修改成功');
        }
        exitjson(-1,'修改失败！');
        
    }
    private function hook_type($qr_row) {
        $zh = ''; // 初始化返回的描述信息
    
        // 根据支付类型设置挂机方式描述
        $zh .= ($qr_row['type'] == 'alipay') ? ( // 如果是支付宝支付
            ($qr_row['hook_type'] == '0') ? '云端挂机->' : '自挂->' // 根据挂机类型设置挂机方式
        ) : (
            ($qr_row['type'] == 'qqpay') ? ( // 如果是QQ支付
                ($qr_row['hook_type'] == '0') ? '云端挂机->' : '自挂->' // 根据挂机类型设置挂机方式
            ) : ( // 如果是微信支付
                ($qr_row['hook_type'] == '0') ? '店员挂机->' : ( // 根据挂机类型设置挂机方式
                    ($qr_row['hook_type'] == '1') ? '自挂->' : '云端挂机->'
                )
            )
        );
    
        // 根据支付类型设置具体挂机描述
        $zh .= ($qr_row['type'] == 'alipay') ? ( // 如果是支付宝支付
            ($qr_row['cookie'] == 'xfqymckxy') ? '支付宝签约免CK挂机' : ( // 如果是签约免CK
                ($qr_row['cookie'] == 'xfqydmfxy') ? '支付宝签约当面付挂机' : '支付宝云端协议挂机' // 如果是签约当面付
            )
        ) : (
            ($qr_row['type'] == 'qqpay') ? ( // 如果是QQ支付
                ($qr_row['xf_stat'] == '1') ? '云端不掉线通道' : '云端协议' // 根据支付通道设置描述
            ) : ( // 如果是微信支付
                ($qr_row['status'] == 1) ? '状态:在线' : '状态:掉线' // 根据状态设置描述
            )
        );
    
        return $zh; // 返回描述信息
    }
}

?>